#pragma once

#include <sstream>
#include "TypeTraits.h"

namespace MockItNow
{
	template<typename T>
	std::string GetFriendlyTypeName()
	{
		std::stringstream stream;
		
		stream << typeid(T).name();

		if (IsConst<T>::Value == true)
			stream << " const";

		if (IsReference<T>::Value == true)
			stream << " &";

		return stream.str();
	}

	template<typename T>
	size_t GetFunctionAddress(T function)
	{
		return (size_t&)function;
	}
}
